ALICE All-Iconify-Enabler Version 1.0 22.09.1996 von Sven Kopacz An english version is also available. Please contact Anrew Lee at ajl@cix.compulink.co.uk 1. Rechtliches Die Sprche kennen Sie zwar alle schon, aber lesen Sie sie trotzdem: Alice ist Freeware, d.h. jeder darf es kostenlos benutzen und kostenlos weitergeben, ebenso darf Alice kostenlos eigenen Programmen beigelegt werden. Allerdings darf eine Weitergabe/Beilage NUR MIT DIESEM TEXT erfolgen! Uploads in Mailboxen, die keine Download-Gebhren verlangen (z.B. die Maus-Mailboxen) sind ebenfalls erlaubt. (Eigentlich ist alles, was hier erlaubt ist, nicht nur erlaubt sondern ausdrcklich erwnscht:-) VERBOTEN ist es, Kohle fr Alice zu verlangen. Das betrifft z.B. Disketten gewisser PD-Serien, die zu Preisen deutlich ber den Unkosten abgegeben werden. Ich lege die Grenze bei 6.- DM pro Diskette fest. Hallo ST-Computer. Gelesen? VERBOTEN steht da, VERBOTEN! Eine Haftung bernehme ich weder fr Sch„den noch fr sonst irgendwas, was wie auch immer mit der Benutzung von Alice zusammenh„ngt. 1.1 Kenn ich schon Wer Alice 0.9ž schon kennt (bzw. die Anleitung), der sollte folgende Abschnitte dieser Anleitung lesen: 7. Sonstiges zur V1.0 9. Zubeh”r 10. Updatehistorie 12. Zum Schluž Fr Programmierer k”nnte aužerdem der ge„nderte Cookie interessant sein, er ist in Abschnitt 8.1 beschrieben. 2. Was ist Alice? Alice ist ein TSR ("Terminate and stay resident"), d.h. in diesem Fall eine Systemerweiterung fr den AUTO-Ordner. Ist Alice installiert, beherrschen alle Applikationen das Iconify. Voraussetzung dafr ist ein Betriebssystem, das eben dieses Iconify untersttzt. Z.Zt. sind das meines Wissens: -MagiC >= V3.0 -MagiCMac >= 1.2.4 -MultiTOS-Beta (AES 4.1) -Geneva -N.AES -SingleTOS >= V2.06 mit installiertem WINX 2.3N und ICFS Unter der letzten Konfiguration l„uft Alice z.Zt. nur mit Einschr„nkungen -"Iconify fr alle Apps bernehmen" muž aktiviert sein -App-Name wird nicht erkannt (stattdessen erscheint ein "?" unter dem Icon) -Alliconify auf ein ACC-Fenster fhrt dazu, daž die Fenster der Hauptapp mit eingepackt werden. Wer sich fr den Einsatz von Alice unter SingleTOS ineressiert, soll mir bitte eine kurze Nachricht zukommen lassen, damit ich einsch„tzen kann, wo das auf der Priorit„tenliste einzuordnen ist. Momentan stehts ganz unten. šbrigens genau wie meine e-Mail-Adresse, die steht auch ganz unten, in Abschnitt 11. 3. Installation und Konfiguration Kopieren Sie Alice in den AUTO-Ordner, die Position ist egal. Um Alice zu konfigurieren ben”tigen Sie das Alice-CPX von Daniel H”pfl. Dieses CPX ist im Moment noch nicht ”ffentlich erh„ltlich, wird es aber in den n„chsten Tagen sein. Ein Blick in ATARI.NEWS kann also nix schaden. Bis dahin konfiguriert man Alice am besten mit der GEM-Version (!) von SETTER. SETTER ist ursprnglich ein TTP-Programm von Harun Scheutzow, um verschiedene Programme zu konfigurieren. Markus Kohm hat eine GEM-Version dieses Programms verfažt, die aužerdem neue M”glichkeiten zur Konfiguration bietet. Diese erweiterten M”glichkeiten werden von Alice genutzt, weshalb Sie eben die GEM-Version von SETTER ben”tigen. Diese Version liegt dem Alice-Archiv (dieses Mal noch) bei. Ziehen Sie nun einfach das in den AUTO-Ordner kopierte ALICE.PRG auf SETTER.PRG. SETTER wird gestartet und pr„sentiert Ihnen in einem Fenster alle Optionen von Alice. Ich hoffe mal, daž die alle selbsterkl„rend sind. Falls es Probleme gibt, schreiben Sie mir, damit ich in zuknftigen Versionen die Texte entsprechend verbessern kann. Haben Sie alles Ihren Wnschen entsprechend eingestellt, starten Sie Ihren Rechner neu, damit sich Alice installieren kann. Achja, wenn Sie mal die Anleitung zu SETTER lesen, werden Sie feststellen, daž Sie Ihre Einstellungen in Alice NICHT bei jedem Update neu t„tigen mssen... 4. Benutzung Da gibts eigentlich nicht viel zu sagen, das Iconify kennen Sie ja wahrscheinlich aus Programmen wie Thing, CAT, ConNect u.v.a.. Žltere Programme bieten normalerweise kein Iconify, weshalb sich dieses OS-Feature IMO schlecht nutzen l„žt (es ist schwierig, von etwas zu profitieren, was man nur ab und zu haben kann). Mit Alice k”nnen Sie nun in allen Programmen die Iconify-Option benutzen, wobei Alice die komplette Verwaltung der Iconify-Fenster fr nicht Iconify-f„hige Applikationen bernimmt. Falls Sie es noch nicht wissen: Das Fensterelement oben rechts mit dem kleinen Dreieck ist der "Iconifier" oder "Smaller". Ein Klick darauf bewirkt, daž das Fenster verkleinert ("ikonisiert") wird und der komplette Inhalt durch ein Icon ersetzt wird. Halten Sie beim Klick auf den Iconifier zus„tzlich die Control-Taste gedrckt, werden alle Fenster der zugeh”rigen Applikation in ein einziges Iconify-Fenster "verwandelt", das ist das sog. "All-Iconify". Ein Doppelklick auf ein ikonisiertes Fenster bewirkt ein "Uniconify", d.h. der ursprngliche Zustand wird wieder hergestellt. Auf Fenster, die durch Alice ikonisiert wurden, k”nnen Sie aužerdem andere Objekte ziehen ("Drag and Drop"), sofern die beteiligten Applikationen das VA-Protokoll untersttzen. Das betreffende Programm verh„lt sich dann, als h„tten Sie das Objekt auf das Icon des Desktops gezerrt. (Fr Programmierer: VA_DRAGACCWIND wird in VA_START umgewandelt). Ist ein von Alice ikonisiertes Fenster das oberste Fenster, dann werden Tastendrcke ignoriert (das w„re sonst zu gef„hrlich). 5. Icons Natrlich kann Alice nicht wissen, welchen tats„chlichen Inhalt ein Fenster hat (z.B. einen Text oder eine Grafik), deshalb werden Sie in den von Alice ikonisierten Fenstern normalerweise nur eines von vier Standard-Icons vorfinden: -Haben Sie ein einzelnes Fenster einer Applikation ikonisiert, erscheint ein Fenster-Icon -Haben Sie ein einzelnes Fenster eines Accessories ikonisiert, erscheint ein Fenster-Icon mit aufgeklapptem Accessory-Men. -Haben Sie ein "All-Iconify" bei einer Applikation ausgel”st, erscheint das Programm-Icon des Original-TOS-Desktops. -Haben Sie ein "All-Iconify" bei einem Accessory ausgel”st, erscheint das Programm-Icon des Original-TOS-Desktops mit aufgeklapptem Accessory-Men. Der Fenstertitel bleibt dabei jeweils erhalten und unter dem Icon erscheint der Name des Programms, zu dem das ikonisierte Fenster geh”rt. 6. Mehr Icons? Da schlappe vier Icons etwas fade sind, wurde in Alice eine Schnittstelle integriert, die in Zusammenarbeit mit Arno Welzel entstanden ist. šber diese Schnittstelle haben externe Programme die M”glichkeit, den Inhalt der ikonisierten Fenster zu zeichnen und somit fr mehr Abwechslung und Information zu sorgen. Fr Rainer User bedeutet das, daž er bei Verwendung des alternativen Desktops Thing (von Arno Welzel) ab Version 1.0 in den ikonisierten Fenstern ganz automatisch die Icons vorfindet, die er auch im Desktop fr die jeweiligen Programme angemeldet hat. Na wenn das nichts ist:-) Wenn Sie einen anderen Desktop benutzen, dann k”nnen Sie versuchen, den Autor dieses Desktops zum Einbau der Schnittstelle zu berreden. Den passenden Ansprechpartner finden Sie i.d.R. im Info-Dialog oder in der Anleitung zu Ihrem Desktop. Programmierer k”nnen sich auch einen eigenen Redraw-Server schreiben (Puristen m”chten vielleicht nur den App-Namen in den Fenstern haben, Multimedia-Anh„nger dagegen ganze MPEG-Filmchen abspielen lassen;-), mehr dazu im Kapitel "Fr Programmierer". 7. Sonstiges zur V1.0 Ich habe versucht, alle Bugs die mir gemeldet wurden und die ich vor allem reproduzieren konnte, aus Alice zu entfernen. An dieser Stelle m”chte ich insbesondere Daniel H”pfl lobend erw„hnen, der mir mit seinen sehr detaillierten Bugreports wirklich eine Menge Arbeit ab- genommen hat, fr die ich vermutlich auch gar keine Zeit gehabt h„tte (d.h. ohne ihn w„ren manche Fehler immer noch drin). Kommen wir also nun zur schlechten Nachricht: Einige Fehler kann ich beim besten Willen weder reproduzieren, noch habe ich eine Ahnung, wer oder was genau Schuld daran ist. Allen vorneweg ist Stewart davon betroffen, hier gibt es offenbar bei vielen Anwendern immer wieder unmotivierte Abstrze. Diese treten aber weder bei mir, noch bei John McLoud (dem Autor von Stewart) auf, so daž es mir unm”glich ist, einen Ansatz zur Problemsuche zu finden. Vielleicht klappt es ja auch mit dieser neuen Alice-Version. Desweitern gab es einige "Bugs", die mir nur von jeweils einem einzigen User berichtet wurden, die ich nicht reproduzieren kann und bei denen ich daher davon ausgehe, daž es sich um ein Problem in der jeweiligen Konfiguration handelt. Wer also mit der V1.0 immer noch Probleme hat, die mir bereits ge- meldet wurden, sollte bitte zuerst mal mit seiner Konfiguration experimentieren, um zu prfen ob evtl. ein drittes Programm auch eine Rolle spielt. 8. Fr Programmierer ...stellen sich jetzt vielleicht folgende Fragen: -Soll ich in meine Programme Iconify-Untersttzung einbauen? Das muž jeder selber wissen. Tatsache ist, daž Alice weiterentwickelt wird und eine Untersttzung aller Iconify-f„higen Betriebssysteme beabsichtigt ist, prinzipiell kann man es sich also sparen, in eigenen Programmen Speicher fr Iconify-Untersttzung zu opfern. Andererseits will man vielleicht in Sonderf„llen spezielle Fenster auf keinen Fall ikonisiert bekommen o.„., dann ist eine eigene Untersttzung notwendig. Hinweis: Applikationsmodale Fensterdialoge sind kein Problem, solange man auf die Nachricht WM_NEWTOPPED/WM_ONTOP fr ein anderes Fensterhandle mit dem Toppen des Dialogfensters reagiert. Bevor Sie Iconify allerdings nur halblebig einbauen (das ALL_ICONIFY wird offenbar gerne gemieden), lassen Sie es lieber ganz bleiben oder bieten Sie zumindest eine optionale Abschaltung dafr an. -Was muž ich tun, damit Alice meine Programme auf jeden Fall in Ruhe l„žt? Einfach beim Programmstart ein Fenster mit Iconifier per wind_create erzeugen (und falls es nicht ben”tigt wird danach wieder l”schen). Wann das genau passiert ist unwichtig, wichtig ist nur, daž das erste mit wind_create erzeugte Fenster einen Iconifier besitzt. Wenn das in Ihrem Programm sowieso der Fall ist, k”nnen Sie alles so lassen wie es ist. Allerdings ntzt das nichts, wenn der User in Alice die Option "Iconify fr alle Apps bernehmen" aktiviert. -Was muž ich tun, damit Alice meine Programme untersttzt. Nix. Was man aber nicht machen sollte, ist ein wind_create mit angemeldetem Iconifier. Dann n„mlich geht Alice davon aus, das Ihre App das Iconify selber kann und h„lt sich raus (aužer bei der Vergabe der Koordinaten fr das ikonisierte Fenster). -Wie verhalten sich von Alice ikonisierte Fenster fr mein Programm? Fr das Programm erscheinen diese Fenster, als wrden sie sich nach wie vor an der alten Position befinden, jedoch von einem anderen Fenster vollst„ndig verdeckt (d.h. der Redrawbereich hat die Breite/H”he 0). Fhrt das Programm ein wind_set(WF_TOP) auf ein von Alice ikonisiertes Fenster aus, so fhrt dies automatisch zu einem Uniconify. Befindet sich das Fenster "versteckt" in einem All-Iconify-Fenster, so wird es aus diesem Fenster "gel”st". Da das Programm nix vom Iconify mitbekommt, ist es kein Problem, beim Beenden die Fensterkoordinaten zu speichern. Auch wenn alle Fenster ikonisiert oder wom”glich in einem All-Iconify-Fenster "versteckt" (und damit geschlossen) sind, da z.B. wind_get weiterhin die alten Koordinaten liefert. -Sonst noch was? Ja. Wenn Alice das Iconify bernimmt, bernimmt es auch diverse Nachrichten, den Redraw etc...In diesem Fall kann es vorkommen, daž ein event_message oder _multi von der Applikation nicht mehr bearbeitet werden soll. Alice „ndert einen solchen Event daher in einen Message-Event mit der Nachrichtennummer 0x998 (MSG_NOEVENT). Die Applikation muž dann nichts weiter machen, als diese Nachricht einfach zu ignorieren (was normalerweise dadurch geschieht, daž man seine Programme einfach so l„žt, wie sie sind;-) 8.1 Die Schnittstelle fr den Redraw-Server: Wie bereits erw„hnt, kann ein anderes Programm den Inhalt der ikonisierten Fenster zeichnen. Dieses Programm bernimmt damit die Rolle des Redraw-Servers. Dazu muž sich der Server zun„chst bei Alice anmelden: 1) Der Server sucht den Cookie mit Kennung "ALIC" (wird von Alice angelegt) 2) Der Cookie enth„lt als Wert einen Zeiger auf folgende Struktur: typedef struct { long magic; /* Magic - muss 'ALIC' sein */ long version; /* Versionsnummer+Datum BCD */ int redraw_ap_id; /* -1 oder ap_id */ void *debug; /* privat */ /* Ab Version 1.0 */ /* Diese Pointer zeigen direkt auf die von Alice verwendeten Variablen. Schreiben drfen hier nur Konfigurationsprogramme! */ int *icwin_sx; /* Pointer auf Ablage Start (0=links,1=rechts) */ int *icwin_sy; /* Pointer auf Ablage Start (0=oben,1=unten) */ int *icwin_dir; /* --- " --- Richtung (0=hor.,1=ver.) */ /* Data 0-128 */ int *icwin_xoff; /* --- " --- Bildschirmrand x-Abstand */ int *icwin_yoff; /* --- " --- Bildschirmrand y-Abstand */ int *icwin_woff; /* --- " --- x-Abstand Iconfenster */ int *icwin_hoff; /* --- " --- y-Abstand Iconfenster */ /* Data 32-128 */ int *icwin_w; /* --- " --- Breite Iconfenster */ int *icwin_h; /* --- " --- H”he Iconfenster */ /* Flags 0/1 */ int *icback; /* --- " --- Fenster backdroppen? */ int *all_apps; /* --- " --- Alle Apps bernehmen? */ int *cut_titel; /* --- " --- Titel vor '\' abschneiden? */ int *ignore_server; /* --- " --- Redraw-Server ignorieren? */ }ALICE_COOKIE; "version" ist die Versionsnummer+Datum in BCD-Schreibweise. Die Version 1.0 vom 22.09.1996 ist also am Eintrag "10220996" zu erkennen. Eine Prfung der Versionsnummer ist fr den Server aber nicht notwendig, da alle bisherigen Alice-Versionen die gleiche Schnittstelle bieten. Nun prft der Server, ob in "redraw_ap_id" der Wert -1 eingetragen ist. Ist dies nicht der Fall, hat sich bereits ein anderer Server angemeldet->Pech. Ansonsten tr„gt der Server nun in "redraw_ap_id" seine eigene ap_id (aus appl_init()) ein. 3) Wenn Alice nun ein Fenster ikonifiziert, schickt es an den Server folgende Message: msg[0]=THING_CMD (0x46ff) msg[1]= msg[2]=0; msg[3]=AT_WINICONIFY (0x1000) msg[4/5]= msg[6]= msg[7]=reserviert, immer 0 Als Extension gilt: ".APP" oder ".PRG" = GEM-Programm ".ACC" = Accessory Der Server hat somit die M”glichkeit, intern einen Objektbaum fr den Fensterinhalt aufzubauen. 4) Sobald ein Redraw fr notwendig ist, schickt Alice eine WM_REDRAW-Message im blichen Format an den Server. 5) Wenn das Fenster geschlossen oder wieder auf normale Gr”že (uniconify) gebracht wird, schickt Alice an den Server folgende Message: msg[0]=THING_CMD (0x46ff) msg[1]= msg[2]=0 msg[3]=AT_WINUNICONIFY (0x1001) msg[4]= msg[5-7]=reserviert, immer 0 Der Server kann nun den Speicher fr den evtl. erzeugten Objektbaum wieder frei geben. L„žt sich der Fensterinhalt schnell aufbauen (z.B. einfacher Text), dann kann 3) und 5) einfach ignoriert werden und der Inhalt beim Eintreffen einer Redraw-Message erzeugt werden. 6) Sollte der Server sich unerwartet beenden, schreibt er in den Alice-Cookie in 'redraw_ap_id' wieder den Wert -1, damit Alice weiss, daž der Server nicht mehr aktiv ist. 7) Der Server muž, falls er selbst Fenster benutzt, sein Iconify selber machen, weil alle seine wind_get-Anfragen von Alice durchgelassen werden, es also grože Probleme mit den von Alice ikonisierten Fenstern g„be. Alice meldet in den Serverfenstern auch keine Iconifier an (auch nicht, wenn in der Konfiguration 'Iconify fr alle Apps bernehmen' gew„hlt wurde). 9. Zubeh”r Momentan sind mir folgende Programme bekannt, die Alice untersttzen: -Das Konfigurations-CPX von Daniel H”pfl @ A (NOCH nicht ”ffentlich) Mit diesem CPX lassen sich sehr komfortabel alle Einstellungen in Alice t„tigen, die ber SETTER.PRG verfgbar sind und k”nnen sogar zur Laufzeit ge„ndert werden. Aužerdem stehen einige weitere Optionen zur Verfgung. Ich m”chte Daniel hier nochmal fr seine Mhe danken. Das gleiche k”nnen Sie auch tun, indem Sie seinen "Plschieware"-Hinweis beachten. -Thing ab V1.0 von Arno Welzel @ A Dieser Desktop bernimmt automatisch die Funktion des Redraw-Servers, d.h. in den von Alice angelegten Icon-Fenstern erscheinen automatisch die Icons, die die Applikation auch im Desktop bekommt. Hinweis: Arno hat die Weiterentwicklung von Thing abgegeben! (Peinlicherweise weiž ich im Moment nicht, an wen. Wenn mir das bitte jemand mitteilen k”nnte, nehme ich es in diese Anleitung auf.) Von hier nochmal ein Dankesch”n an Arno fr die Untersttzung. -HASE von Uwe und Jrgen Holtkamp (Jrgen Holtkamp @ DO) (auch NOCH nicht ”ffentlich) Der HASE bernimmt mittels einer eigenen, frei konfigurierbaren RSC-Datei die Funktion des Redraw-Servers und ist damit automatisch fr alle Benutzer interessant, die nicht Thing als Desktop verwenden. Auch an Uwe und Jrgen ein Dankesch”n von mir und hoffenlich von allen, die den HASEn in Zukunft benutzen werden. -NOTHING von John McLoud @ WI2 Dieses Programm kenne ich selbst nicht und bernehme daher an dieser Stelle den Text aus A.NEWS: "-In Zusammenarbeit mit Alice und StIc kann NoThing fr jede angemeldete Applikation in das von Alice ikonisierte Fenster das passende Icon Zeichnen -Spezialversion fr Gemini (nearly Plug&Play)" -SETTER (GEM-Version) von Markus Kohm @ KA2 Der SETTER untersttzt natrlich nicht Alice, sondern Alice profitiert vom SETTER. Allerdings empfehle ich die Verwendung des Alice-CPX (s.o.). So, wer jetzt noch einen Redrawserver o.„. fr Alice geschrieben hat, der Teile mir das bitte mit, damit diese Liste hier nach M”glichkeit immer vollst„ndig ist. 10. Updatehistorie V0.9ž 17.1.1996 -erste ”ffentliche Version V1.0 17.9.1996 -Neue Option "Redraw-Server ignorieren" -Supervisorcalls in evnt_multi werden ignoriert, damit funktionieren jetzt die Popups in MagiC-Fensterdials, per WDIALOG und Selectric. -Wilde Schreibereien im Cookie-Jar treten nicht mehr auf. -Krzen der Fenstertitel wird etwas intelligenter gehandhabt, d.h. zuerst werden alle abschlieženden ' ' und '\' bergangen und erst dann ggf. beim n„chsten '\' abgeschnitten. -L„uft unter MultiTOS (Iconifyf„hige Version) -L„uft unter SingleTOS+WINX 2.3N+ICFS mit Einschr„nkungen -Sollte auch unter Geneva und N.AES laufen -In seltenen F„llen konnten die wind_get-Calls von Apps auch fr ikonisierte Fenster durchkommen (dann wurde z.B. Mll in INF-Dateien gespeichert). -Fehler in MagiC: wind_get(WF_TOP) liefert u.U. (z.B. nach dem Booten) immer 0 und das Handle des n„chsten Fensters (ber WF_OWNER) wird als -1 geliefert, auch wenn z.B. w„hrend des Bootens Fenster durch Prgs im APPS-Ordner ge”ffnet wurden. Das war die Ursache dafr, daž Alice manchmal mehrere Iconfenster auf der gleichen Position abgelegt hat (tritt jetzt nicht mehr auf). -Kleinere Žnderungen, damit alle Parameter gefahrlos zur Laufzeit ge„ndert werden k”nnen. 11. Kontakt Ich selbst bin per eMail im Mausnet unter Sven Kopacz @ LB zu erreichen. In der Maus LB ist auch immer die neuste Version von Alice zu finden. LB MAUS Ludwigsburg 07141-280479 Gastdownload, nicht von 18-20 (Zahler) und 20-21 (User) Termine (nicht anrufen): Startzeitpunkt Dauer Hinweise von - bis ca. ------------------------------------------------------ 02:50 - 04:30 100 NachtNetz 11:00 - 11:30 ??? Backup-Controll 17:45 - 18:00 10 Abendnetz senden 19:18 - 19:40 10 Abendnetz erwarten Per Post geht's auch: Sven Kopacz Metzinger Str. 20 70597 Stuttgart Wer eine Antwort per Post wnscht, legt einen adressierten & frankierten Rckumschlag bei, fr die neuste Alice-Version zus„tzlich eine Diskette (DD oder HD). Fr die netten Leute mit den Spendierhosen hier noch meine Bankverbindung: Kto.-Nr. 3213502 BLZ 600 501 01 Landesgirokasse Stuttgart 12. Zum Schluž... šbrigens war eine der h„ufigsten Anfragen zu Alice, wie der Name gesprochen wird. Hier die L”sung: Weder ist die S„ngerin noch der beraus originelle Titel "Who the F**k is <Žllis>" gemeint, sondern die aus dem Wunderland. Ja, genau, die mit dem Hasen. Ja, da wo's auch den Disney-Film dazu gibt. Hat da brigens jemand ein Bild? Ich wrde das gerne in den geplanten HYP einbauen. -Ende-